using System;

namespace needle.Services.astra.Common
{
	/// <summary>
	/// Interface for hierarchical objects.
	/// </summary>
	/// <remarks>Hierarchy is achieved with <see cref="Parent"/> property.</remarks>
	/// <typeparam name="T">Type of hierarchical object.</typeparam>
	public interface IParent<T>
	{
		/// <summary>
		/// Parent of this object in hierarchy tree.
		/// </summary>
		/// <value>null means top level (root) object.</value>
		T Parent
		{
			get;
		}
	}
}
